SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE  [dbo].[spAltaDeNovedadesDeConciliacionLIQ]
@Agente Int,
@Fecha Varchar(10),
@Movimiento Int,
@IDS Int,
@Legajo Int,
@FechaDesde Varchar(10),
@FechaHasta Varchar(10),
@SituacionRevista Int,
@CargoSalarial Int,
@Horas Int,
@Retener Varchar(1),
@Bloquear Varchar(1),
@Organizacion Int,
@UbicacionOriginal Int
AS
SET NOCOUNT ON
Set Dateformat DMY

Declare @FFecha Datetime, @FFechaDesde Datetime, @FFechaHasta Datetime, @Mensaje Varchar(500)

Select @Mensaje = 'OK'

If @Fecha = '-1'
	Select @FFecha = Getdate()
Else	
	Select @FFecha = Convert(Datetime, @Fecha)

If @FechaDesde <> '-1'
	Select @FFechaDesde = Convert(Datetime, @FechaDesde)
Else
	Select @FFechaDesde = Null

If @FechaHasta <> '-1'
	Select @FFechaHasta = Convert(Datetime, @FechaHasta)
Else
	Select @FFechaHasta = Null

If @IDS = -1
	Select @IDS = Null

If @Legajo = -1
	Select @Legajo = Null

If @CargoSalarial = -1
	Select @CargoSalarial = Null

If @SituacionRevista = -1
	Select  @SituacionRevista = Null

If @Horas = -1
	Select @Horas = Null
	
If @Organizacion = -1
	Select @Organizacion = Null

If @Agente <> -1
	Select @Agente = idAgente From tb_Afiliaciones Where NumeroAfiliado = @Agente

If @Agente = -1 And @Legajo Is Not Null
	Select @Agente = A.idAgente From tb_Agentes A, CESIDA03  C Where Nro_Doc = Documento And Legajo = @Legajo


/*************************************************************** CHEQUEOS **************************************************************************/

If @Movimiento = 1 And (@Agente Is Null Or @SituacionRevista Is Null Or @CargoSalarial Is Null Or @Organizacion Is Null Or @FFechaDesde Is Null
	Or ( (Select RegimenSalarial From tb_Cargos Where idCargo = @CargoSalarial) = 13 And @Horas Is Null))
Begin
	Select @Mensaje = 'El movimiento de Alta exige: AGENTE, UBICACION, CARGO SALARIAL, SITUACION DE REVISTA, FECHA DESDE, HORAS (en caso de regimen por horas)'	
	Goto SALIR
End

If @Movimiento = 2 And (@Legajo Is Null Or @FFechaHasta Is Null)
Begin
	Select @Mensaje = 'El movimiento de Baja exige: LEGAJO y FECHA DE BAJA'	Goto SALIR
End
If @Movimiento = 4 And (@Legajo Is Null Or @SituacionRevista Is Null)
Begin
	Select @Mensaje = 'El cambio de Situacion de Revista exige: LEGAJO y SITUACION DE REVISTA'
	Goto SALIR
End

If @Movimiento = 5 And (@Legajo Is Null Or @CargoSalarial Is Null)
Begin
	Select @Mensaje = 'El cambio de Cargo Salarial exige: LEGAJO y CARGO SALARIAL'
	Goto SALIR
End

If @Movimiento = 6 And (@Legajo Is Null Or @Horas Is Null)
Begin
	If (Select C.RegimenSalarial From tb_Cargos C, CESIDA03 CE Where CE.Cargo = C.idCargo And Legajo = @Legajo) = 12
		Select @Mensaje = 'El cambio de horas solo se contempla para Cargos con Regimen por Horas'
	Else
		Select @Mensaje = 'El cambio de Horas exige: LEGAJO y HORAS'
	Goto SALIR
End

If @Movimiento = 7 And (@Legajo Is Null Or @Organizacion Is Null)
Begin
	Select @Mensaje = 'El cambio de Organizacion exige: LEGAJO y UBICACION'
	Goto SALIR
End

If @Movimiento = 8 And (@Legajo Is Null Or @Retener = 'N')
Begin
	Select @Mensaje = 'Una nueva Retencion exige: LEGAJO y RETENIDO'
	Goto SALIR
End

If @Movimiento = 9 And (@Legajo Is Null Or @Bloquear = 'N')
Begin
	Select @Mensaje = 'Una nueva Retencion exige: LEGAJO y BLOQUEO'
	Goto SALIR
End

If Not Exists(Select * From tb_NovedadesDeConciliacionLIQ Where Agente = @Agente And Movimiento = @Movimiento And IDS = @IDS And
	LegajoVinculado = @Legajo And FechaAlta = @FFechaDesde And FechaBaja = @FFechaHasta And NuevaRetencion = @Retener And
	NuevoBloqueo = @Bloquear And SituacionRevista = @SituacionRevista And CargoSalarial = @CargoSalarial And OrganizacionOriginal = @UbicacionOriginal)
Begin
	Insert tb_NovedadesDeConciliacionLIQ Select Null, @FFecha, @Movimiento, @IDS, @Legajo, @FFechaDesde, @FFechaHasta, 
		@Retener, @Bloquear, @Horas, @Organizacion, @SituacionRevista, @CargoSalarial, 3, @Agente, @UbicacionOriginal
End
Else
Begin
	Select @Mensaje = 'La Novedad que desea agregar ya existe'
	Goto SALIR
End

SALIR:
	Select @Mensaje Resultado
GO
